home *** CD-ROM | disk | FTP | other *** search
/ Especial Multimedia / Especial Multimedia.iso / Multimed / Herra / CBI_DEMO.ZIP / DEMORUN.MST < prev    next >
Text File  |  1997-09-14  |  13KB  |  440 lines

  1. '**************************************************************************
  2. '*                       CBIRUN Demo Product Setup
  3. '**************************************************************************
  4.  
  5. ''$DEFINE DEBUG      ''Define for script development/debugging
  6. ''$DEFINE DISKSIZE    ''Define if you want to check for disk space
  7.  
  8. '$INCLUDE 'setupapi.inc'
  9. '$INCLUDE 'msdetect.inc'
  10.  
  11. ''Dialog ID's
  12. CONST WELCOME     = 100
  13. CONST ASKQUIT           = 200
  14. CONST DESTPATH          = 300
  15. CONST EXITFAILURE    = 400
  16. CONST EXITQUIT          = 600
  17. CONST EXITSUCCESS  = 700
  18. CONST OPTIONS     = 800
  19. CONST APPHELP      = 900
  20. CONST DRIVESELECT    = 1100
  21. CONST BADPATH      = 6400
  22.  
  23. ''Bitmap ID
  24. CONST LOGO = 1
  25.  
  26. GLOBAL DEST$            ''Default destination directory.
  27. GLOBAL OPTCUR$       'Null for now
  28. GLOBAL WINDRIVE$    'Used in size test
  29.  
  30. GLOBAL SrcDir$
  31. GLOBAL WinDir$
  32. GLOBAL WinSysDir$
  33.  
  34. GLOBAL WantedDiskSize&    ''Used for disk size test
  35.  
  36. DECLARE SUB Install
  37. DECLARE FUNCTION MakePath (szDir$, szFile$) AS STRING
  38.  
  39. ''DECLARE FUNCTION DoProtect LIB "PROTECT.DLL" (szDisk$) AS INTEGER
  40.  
  41. INIT:
  42.     CUIDLL$   = "mscuistf.dll"                ''Custom user interface dll
  43.     HELPPROC$ = "FHelpDlgProc"       ''Help dialog procedure
  44.  
  45.     SrcDir$ = GetSymbolValue("STF_SRCDIR")
  46.     WinDir$ = GetWindowsDir()
  47.     WinSysDir$ = GetWindowsSysDir()
  48.  
  49.     MajorVer% = GetWindowsMajorVersion()
  50.     MinorVer% = GetWindowsMinorVersion()
  51.  
  52.     IF  MajorVer% < 3 OR (MajorVer% = 3 AND MinorVer% < 10) THEN
  53.         i% = DoMsgBox("Microsoft Windows version 3.10 or greater is required for this software.  Please upgrade your version of Windows.", "Installation Problem", MB_OK+MB_TASKMODAL+MB_ICONHAND)
  54.         END
  55.     END IF
  56.  
  57.     SetBitmap CUIDLL$, LOGO
  58.     SetTitle "CBI Tutorial Install ... Created with CBIquick"
  59.  
  60.     szInf$ = GetSymbolValue("STF_SRCINFPATH")
  61.  
  62.     IF szInf$ = "" THEN
  63.      szInf$ = GetSymbolValue("STF_CWDDIR") + "DEMORUN.INF"
  64.     END IF
  65.  
  66.     ReadInfFile szInf$
  67.  
  68.     OPTCUR$ = "1"
  69.     DEST$ = "C:\CBIRUN"
  70.  
  71. '$IFDEF DEBUG
  72.     i% = SetSizeCheckMode(scmOnIgnore)    '' could use scmOff; def = scmOnFatal
  73.     WinDrive$ = MID$(GetWindowsDir, 1, 1)
  74.     IF IsDriveValid(WinDrive$) = 0 THEN
  75.     i% = DoMsgBox("Windows drive ('"+WinDrive$+"') is not a valid drive.", "DEBUG", MB_TASKMODAL+MB_ICONHAND+MB_OK)
  76.     GOTO QUIT
  77.     END IF
  78. '$ENDIF ''DEBUG
  79.  
  80. WELCOME:
  81.  
  82. GETPATH:
  83.     SetSymbolValue "EditTextIn", DEST$
  84.     SetSymbolValue "EditFocus", "END"
  85.  
  86. GETPATHL1:
  87.     sz$   = UIStartDlg(CUIDLL$, DESTPATH, "FEditDlgProc", APPHELP, HELPPROC$)
  88.     DEST$ = GetSymbolValue("EditTextOut")
  89.  
  90.     IF sz$ = "CONTINUE" THEN
  91.  
  92.     ''Not checking writeability of network drives yet
  93.     ''IF IsDirWritable(DEST$) = 0 THEN
  94.     ''    GOSUB BADPATH
  95.     ''    GOTO GETPATHL1
  96.     ''END IF
  97.  
  98.     UIPop 1
  99.     ELSEIF sz$ = "REACTIVATE" THEN
  100.     GOTO GETPATHL1
  101.     ELSEIF sz$ = "BACK" THEN
  102.     UIPop 1
  103.     GOTO WELCOME
  104.     ELSE
  105.     GOSUB ASKQUIT
  106.     GOTO WELCOME
  107.     END IF
  108.  
  109.     ''------------------------------------------------------------------
  110.  
  111.     Install
  112.  
  113.     ''------------------------------------------------------------------
  114.  
  115. QUIT:
  116.     ON ERROR GOTO ERRQUIT
  117.  
  118.     IF ERR = 0 THEN
  119.     dlg% = EXITSUCCESS
  120.     ELSEIF ERR = STFQUIT THEN
  121.     dlg% = EXITQUIT
  122.     ELSE
  123.     dlg% = EXITFAILURE
  124.     END IF
  125. QUITL1:
  126.     sz$ = UIStartDlg(CUIDLL$, dlg%, "FInfo0DlgProc", 0, "")
  127.     IF sz$ = "REACTIVATE" THEN
  128.     GOTO QUITL1
  129.     END IF
  130.     UIPop 1
  131.  
  132.     END
  133.  
  134. ERRQUIT:
  135.     i% = DoMsgBox("Setup sources were corrupted, call (508) 263-3030 !", "Setup Message", MB_OK+MB_TASKMODAL+MB_ICONHAND)
  136.     END
  137.  
  138.  
  139.  
  140. BADPATH:
  141.     sz$ = UIStartDlg(CUIDLL$, BADPATH, "FInfo0DlgProc", 0, "")
  142.     IF sz$ = "REACTIVATE" THEN
  143.     GOTO BADPATH
  144.     END IF
  145.     UIPop 1
  146.     RETURN
  147.  
  148.  
  149.  
  150. ASKQUIT:
  151.     sz$ = UIStartDlg(CUIDLL$, ASKQUIT, "FQuitDlgProc", 0, "")
  152.  
  153.     IF sz$ = "EXIT" THEN
  154.     UIPopAll
  155.     ERROR STFQUIT
  156.     ELSEIF sz$ = "REACTIVATE" THEN
  157.     GOTO ASKQUIT
  158.     ELSE
  159.     UIPop 1
  160.     END IF
  161.     RETURN
  162.  
  163. '**********************************************************************
  164. '** Install
  165. '**
  166. '** Purpose:
  167. '**     Builds the copy list and performs all installation operations.
  168. '** Arguments:
  169. '**     none.
  170. '** Returns:
  171. '**     none.
  172. '*************************************************************************
  173. SUB Install STATIC
  174.  
  175.     ''Save a copy of previous menu (if present)------------------------
  176.     DEST_MNU$ = DEST$ + "\DEMORUN.MNU"
  177.     OLD_MNU$   = DEST$ + "\OLD.MNU"
  178.     i% = DoesFileExist(DEST_MNU$, femExists)
  179.  
  180.     IF i% = 1 THEN
  181.     CopyFile DEST_MNU$, OLD_MNU$, cmoNone, 0
  182.     END IF
  183.  
  184.  
  185.     '$IFDEF DISKSIZE     ''If disk size to be checked
  186.         ''Check the disk space - TEST THIS ON NETWORK DRIVES-----------------
  187.         WINDRIVE$ = MID$(DEST$, 1, 1)
  188.         WantedDiskSize&=5800000
  189.  
  190.         '$INCLUDE 'DISKSIZE.INC'
  191.  
  192.      DiskSize&=GetFreeSpaceForDrive(WINDRIVE$)
  193.  
  194.         IF WantedDiskSize& > DiskSize& THEN
  195.             i% = DoMsgBox("Not enough free disk space.  Need 1.8 MB to install + 4 MB additional to run CBIquick tutorial.", "Install Problem", MB_OK+MB_TASKMODAL+MB_ICONHAND)
  196.                END
  197.     END IF
  198.     '$ENDIF    ''DISKSIZE
  199.  
  200.     SrcDir$ = GetSymbolValue("STF_SRCDIR")
  201.     CreateDir DEST$, cmoNone
  202.  
  203.     OpenLogFile MakePath(DEST$, "LOGFILE.OUT"), 0
  204.     WriteToLogFile ""
  205.     WriteToLogFile "  User chose as destination directory: '" + DEST$ + "'"
  206.     WriteToLogFile "  Installing DISK 1 to: '" + DEST$ + "'"
  207.     WriteToLogFile ""
  208.  
  209.     AddSectionFilesToCopyList "Files1", SrcDir$, DEST$
  210.   
  211.     ''Add Video-For-Windows Run-Time files.............................
  212.  
  213.     AddSectionFilesToCopyList "VFW Runtime", SrcDir$, WinSysDir$
  214.     AddSectionFilesToCopyList "AVICodecs", SrcDir$, WinSysDir$
  215.  
  216.     ''Copy the files, initialize display.........................................
  217.  
  218.     CopyFilesInCopyList
  219.  
  220.     ''Update WIN.INI and SYSTEM.INI......................................
  221.  
  222.     CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "VIDC.MSVC", "msvidc.drv", cmoOverwrite
  223.     CreateIniKeyValue "WIN.INI", "mci extensions", "avi", "AVIVideo", cmoOverwrite
  224.     CreateIniKeyValue WinDir$ + "system.ini", "mci", "AVIVideo", "mciavi.drv", cmoOverwrite
  225.  
  226.    ''no MPLAYER Run ("regedit.exe /s " + MakePath(WinDir$, "mplayer.reg"))
  227.  
  228.     Run ("profdisp")
  229.  
  230.     ''ini$ = MakePath(DEST$, "DEMORUN.INI")
  231.     ''CreateIniKeyValue "WIN.INI", "DEMORUN Demo Run-Time For CBIquick", "Option", OPTCUR$, cmoNone
  232.     ''CreateIniKeyValue ini$, "Section 1", "Key 1", "Value 1" , cmoNone
  233.     ''CreateIniKeyValue ini$, "Section 2", "Key 2", "Value 2" , cmoNone
  234.     ''CreateIniKeyValue ini$, "Section 3", "Key 3", "Value 3" , cmoNone
  235.  
  236.     CreateProgmanGroup "CBIrun", "CBIRUN.GRP", cmoNone
  237.     ShowProgmanGroup  "CBIrun", 1, cmoNone
  238.     ''CreateProgmanItem "CBIrun", "CBIrun", MakePath(DEST$,"CBIRUN.exe"),"", cmoOverwrite
  239.  
  240.     ''Append old .MNU menu to new
  241.     i% = DoesFileExist(OLD_MNU$, femExists)
  242.  
  243.     IF i% = 1 THEN
  244.     CopyFile OLD_MNU$, DEST_MNU$, cmoNone, 1
  245.     END IF
  246.  
  247.     ''Get the icon label def created by DQ in Create Disk
  248.  
  249.     '$INCLUDE 'DEMOLABL.INC'
  250.  
  251.     ''Initializing definitions for DISK1-DISK20, up to 20 install disks
  252.     DISK1$ = ""
  253.     DISK2$ = ""
  254.     DISK3$ = ""
  255.     DISK4$ = ""
  256.     DISK5$ = ""
  257.     DISK6$ = ""
  258.     DISK7$ = ""
  259.     DISK8$ = ""
  260.     DISK9$ = ""
  261.     DISK10$ = ""
  262.     DISK11$ = ""
  263.     DISK12$ = ""
  264.     DISK13$ = ""
  265.     DISK14$ = ""
  266.     DISK15$ = ""
  267.     DISK16$ = ""
  268.     DISK17$ = ""
  269.     DISK18$ = ""
  270.     DISK19$ = ""
  271.     DISK20$ = ""
  272.  
  273.     ''Now use the DISKn variables set by DQ Create Disk to flag disks used
  274.     ''in this course install.  Example  DISK3 = "1" to flag disk 1 used.
  275.  
  276.     '$INCLUDE 'DISKNUM.INC'
  277.  
  278.     IF DISK2$ = "1" THEN
  279.     i% = DoMsgBox("Insert Disk # 2 now...", "Load Next Disk", MB_TASKMODAL+MB_ICONHAND+MB_OK)
  280.     ClearCopyList
  281.     AddSectionFilesToCopyList "Files2", SrcDir$, DEST$
  282.     CopyFilesInCopyList
  283.     END IF
  284.  
  285.     IF DISK3$ = "1" THEN
  286.     i% = DoMsgBox("Insert Disk # 3 now...", "Load Next Disk", MB_TASKMODAL+MB_ICONHAND+MB_OK)
  287.     ClearCopyList
  288.     AddSectionFilesToCopyList "Files3", SrcDir$, DEST$
  289.     CopyFilesInCopyList
  290.     END IF
  291.  
  292.     IF DISK4$ = "1" THEN
  293.     i% = DoMsgBox("Insert Disk # 4 now...", "Load Next Disk", MB_TASKMODAL+MB_ICONHAND+MB_OK)
  294.     ClearCopyList
  295.     AddSectionFilesToCopyList "Files4", SrcDir$, DEST$
  296.     CopyFilesInCopyList
  297.     END IF
  298.  
  299.     IF DISK5$ = "1" THEN
  300.     i% = DoMsgBox("Insert Disk # 5 now...", "Load Next Disk", MB_TASKMODAL+MB_ICONHAND+MB_OK)
  301.     ClearCopyList
  302.     AddSectionFilesToCopyList "Files5", SrcDir$, DEST$
  303.     CopyFilesInCopyList
  304.     END IF
  305.  
  306.     IF DISK6$ = "1" THEN
  307.     i% = DoMsgBox("Insert Disk # 6 now...", "Load Next Disk", MB_TASKMODAL+MB_ICONHAND+MB_OK)
  308.     ClearCopyList
  309.     AddSectionFilesToCopyList "Files6", SrcDir$, DEST$
  310.     CopyFilesInCopyList
  311.     END IF
  312.  
  313.     IF DISK7$ = "1" THEN
  314.     i% = DoMsgBox("Insert Disk # 7 now...", "Load Next Disk", MB_TASKMODAL+MB_ICONHAND+MB_OK)
  315.     ClearCopyList
  316.     AddSectionFilesToCopyList "Files7", SrcDir$, DEST$
  317.     CopyFilesInCopyList
  318.     END IF
  319.  
  320.     IF DISK8$ = "1" THEN
  321.     i% = DoMsgBox("Insert Disk # 8 now...", "Load Next Disk", MB_TASKMODAL+MB_ICONHAND+MB_OK)
  322.     ClearCopyList
  323.     AddSectionFilesToCopyList "Files8", SrcDir$, DEST$
  324.     CopyFilesInCopyList
  325.     END IF
  326.  
  327.     IF DISK9$ = "1" THEN
  328.     i% = DoMsgBox("Insert Disk # 9 now...", "Load Next Disk", MB_TASKMODAL+MB_ICONHAND+MB_OK)
  329.     ClearCopyList
  330.     AddSectionFilesToCopyList "Files9", SrcDir$, DEST$
  331.     CopyFilesInCopyList
  332.     END IF
  333.  
  334.     IF DISK10$ = "1" THEN
  335.     i% = DoMsgBox("Insert Disk # 10 now...", "Load Next Disk", MB_TASKMODAL+MB_ICONHAND+MB_OK)
  336.     ClearCopyList
  337.     AddSectionFilesToCopyList "Files10", SrcDir$, DEST$
  338.     CopyFilesInCopyList
  339.     END IF
  340.  
  341.     IF DISK11$ = "1" THEN
  342.     i% = DoMsgBox("Insert Disk # 11 now...", "Load Next Disk", MB_TASKMODAL+MB_ICONHAND+MB_OK)
  343.     ClearCopyList
  344.     AddSectionFilesToCopyList "Files11", SrcDir$, DEST$
  345.     CopyFilesInCopyList
  346.     END IF
  347.  
  348.     IF DISK12$ = "1" THEN
  349.     i% = DoMsgBox("Insert Disk # 12 now...", "Load Next Disk", MB_TASKMODAL+MB_ICONHAND+MB_OK)
  350.     ClearCopyList
  351.     AddSectionFilesToCopyList "Files12", SrcDir$, DEST$
  352.     CopyFilesInCopyList
  353.     END IF
  354.  
  355.     IF DISK13$ = "1" THEN
  356.     i% = DoMsgBox("Insert Disk # 13 now...", "Load Next Disk", MB_TASKMODAL+MB_ICONHAND+MB_OK)
  357.     ClearCopyList
  358.     AddSectionFilesToCopyList "Files13", SrcDir$, DEST$
  359.     CopyFilesInCopyList
  360.     END IF
  361.  
  362.     IF DISK14$ = "1" THEN
  363.     i% = DoMsgBox("Insert Disk # 14 now...", "Load Next Disk", MB_TASKMODAL+MB_ICONHAND+MB_OK)
  364.     ClearCopyList
  365.     AddSectionFilesToCopyList "Files14", SrcDir$, DEST$
  366.     CopyFilesInCopyList
  367.     END IF
  368.  
  369.     IF DISK15$ = "1" THEN
  370.     i% = DoMsgBox("Insert Disk # 15 now...", "Load Next Disk", MB_TASKMODAL+MB_ICONHAND+MB_OK)
  371.     ClearCopyList
  372.     AddSectionFilesToCopyList "Files15", SrcDir$, DEST$
  373.     CopyFilesInCopyList
  374.     END IF
  375.  
  376.     IF DISK16$ = "1" THEN
  377.     i% = DoMsgBox("Insert Disk # 16 now...", "Load Next Disk", MB_TASKMODAL+MB_ICONHAND+MB_OK)
  378.     ClearCopyList
  379.     AddSectionFilesToCopyList "Files16", SrcDir$, DEST$
  380.     CopyFilesInCopyList
  381.     END IF
  382.  
  383.     IF DISK17$ = "1" THEN
  384.     i% = DoMsgBox("Insert Disk # 17 now...", "Load Next Disk", MB_TASKMODAL+MB_ICONHAND+MB_OK)
  385.     ClearCopyList
  386.     AddSectionFilesToCopyList "Files17", SrcDir$, DEST$
  387.     CopyFilesInCopyList
  388.     END IF
  389.  
  390.     IF DISK18$ = "1" THEN
  391.     i% = DoMsgBox("Insert Disk # 18 now...", "Load Next Disk", MB_TASKMODAL+MB_ICONHAND+MB_OK)
  392.     ClearCopyList
  393.     AddSectionFilesToCopyList "Files18", SrcDir$, DEST$
  394.     CopyFilesInCopyList
  395.     END IF
  396.  
  397.     IF DISK19$ = "1" THEN
  398.     i% = DoMsgBox("Insert Disk # 19 now...", "Load Next Disk", MB_TASKMODAL+MB_ICONHAND+MB_OK)
  399.     ClearCopyList
  400.     AddSectionFilesToCopyList "Files19", SrcDir$, DEST$
  401.     CopyFilesInCopyList
  402.     END IF
  403.  
  404.     IF DISK20$ = "1" THEN
  405.     i% = DoMsgBox("Insert Disk # 20 now...", "Load Next Disk", MB_TASKMODAL+MB_ICONHAND+MB_OK)
  406.     ClearCopyList
  407.     AddSectionFilesToCopyList "Files20", SrcDir$, DEST$
  408.     CopyFilesInCopyList
  409.     END IF
  410.  
  411.     CloseLogFile
  412.  
  413. END SUB
  414.  
  415.  
  416. '************************************************************************
  417. '** MakePath
  418. '**
  419. '** Purpose:
  420. '**     Appends a file name to the end of a directory path,
  421. '**     inserting a backslash character as needed.
  422. '** Arguments:
  423. '**     szDir$  - full directory path (with optional ending "\")
  424. '**     szFile$ - filename to append to directory
  425. '** Returns:
  426. '**     Resulting fully qualified path name.
  427. '*************************************************************************
  428. FUNCTION MakePath (szDir$, szFile$) STATIC AS STRING
  429.     IF szDir$ = "" THEN
  430.     MakePath = szFile$
  431.     ELSEIF szFile$ = "" THEN
  432.     MakePath = szDir$
  433.     ELSEIF MID$(szDir$, LEN(szDir$), 1) = "\" THEN
  434.     MakePath = szDir$ + szFile$
  435.     ELSE
  436.     MakePath = szDir$ + "\" + szFile$
  437.     END IF
  438. END FUNCTION
  439.  
  440.